package com.blrs.service.activity;

import com.blrs.common.core.domain.AjaxResult;
import com.blrs.domain.ActivityTraining;
import com.blrs.domain.vo.RegisterVO;

import java.util.List;

/**
 * 活动信息培训Service接口
 * 
 * @author yang
 * @date 2023-11-22
 */
public interface IActivityTrainingService 
{
    /**
     * 查询活动信息培训
     * 
     * @param activityId 活动信息培训主键
     * @return 活动信息培训
     */
    public ActivityTraining selectActivityTrainingByActivityId(String activityId);

    /**
     * 查询活动信息培训列表
     * 
     * @param activityTraining 活动信息培训
     * @return 活动信息培训集合
     */
    public List<ActivityTraining> selectActivityTrainingList(ActivityTraining activityTraining);
    public List<ActivityTraining> selectActivityTrainingByEnterpriseIdList(ActivityTraining activityTraining);
    public List<ActivityTraining> selectActivityTrainingByOrgId(ActivityTraining activityTraining);

    /**
     * 新增活动信息培训
     * 
     * @param activityTraining 活动信息培训
     * @return 结果
     */
    public int insertActivityTraining(ActivityTraining activityTraining) throws NoSuchFieldException, IllegalAccessException;

    /**
     * 修改活动信息培训
     *
     * @param activityTraining 活动信息培训
     * @return 结果
     */
    public AjaxResult updateActivityTraining(ActivityTraining activityTraining);

    /**
     * 批量删除活动信息培训
     * 
     * @param activityIds 需要删除的活动信息培训主键集合
     * @return 结果
     */
    public int deleteActivityTrainingByActivityIds(String[] activityIds);

    /**
     * 删除活动信息培训信息
     * 
     * @param activityId 活动信息培训主键
     * @return 结果
     */
    public int deleteActivityTrainingByActivityId(String activityId);

    AjaxResult updateActivityStatus(ActivityTraining activityId);

    List<ActivityTraining> selectActivityTrainingListRecive(ActivityTraining activityTraining);

    List<ActivityTraining> selectActivityTrainingListExamnie(ActivityTraining activityTraining);

    int updateActivityTrainingScore(ActivityTraining activityTraining);

    List<ActivityTraining> selectActivityTrainingPublicList(ActivityTraining activityTraining);

    AjaxResult terminationActivityTraining(ActivityTraining activityTraining);

    List<ActivityTraining> selectActivityTrainingListTopThree(Long orgId);

    List selectActivityTypeList();

    List<ActivityTraining> selectActivityTypeOneList(ActivityTraining activityTraining);

    List<ActivityTraining> selectActivityTrainingByActivityIdFive(String activityId);

    List<ActivityTraining> selectActivityTrainingListReciveList(ActivityTraining activityTraining);

    AjaxResult register(RegisterVO registerVO);
}
